<?php
    /**
	*/
	
	class Subcategoria {
		//PROPIEDADES
		private $id; 
		private $id_categoria; 
		private $name;
                private $url_amigable;
                private $description;
                private $url_foto;
		
		//CONSTRUCTOR
		public function __construct( $id, $id_categoria, $name,$description,$url_foto ){
			$this->id = $id;
			$this->id_categoria = $id_categoria;
			$this->name = $name;
                        $this->description = $description;
                        $this->url_amigable= urlfriend( $name );
                        $this->url_foto = $url_foto;
		}
		
		//ACCESORES
		public function getId( ){ return $this->id; }
		public function setId( $id ){ $this->id = $id; }
		
		public function getId_categoria( ){ return $this->id_categoria; }
		public function setid_categoria( $id_categoria ){ $this->id_categoria = $id_categoria; }
		
		public function getName( ){ return $this->name; }
		public function setName( $name ){ $this->name = $name; }
                
                public function getDescription( ){ return $this->description; }
		public function setDescription( $description ){ $this->description = $description; }
		
                public function getUrl( ){ return $this->url_amigable; }
		public function setUrl( $value ){ $this->durl_amigable = $dvalue; }
                
                public function getImg( ){ return $this->url_foto; }
		public function setImg( $description ){ $this->url_foto = $description; }
                
                
		//METODOS
		public function toString( ){
			return "ID = " . $this->id . "; id_categoria = " . $this->id_categoria . "; Description = " . $this->name;
		}
		
		
		/* existSubCategory
		 * Función que verifica que existe la subcatedoria
		 * @param: recive un string
		 * @return: boolean
		 */
		 public static function existSubCategory( $value ){
			//pasamos $value a minusculas
			//$val = strtolower( $value );
			try{
		 	//creamos conexion
				$con = new Connection();
				$con->conectar();
				//$consulta = "SELECT * FROM subCategorias WHERE nombre_subcategoria ='".$val."'";
							$consulta = "SELECT * FROM subCategorias WHERE url_amigable =?";
				if ($sentencia = $con->getConexion()->prepare($consulta)) {
									//asignamos la variable $val al ? ,  s=string, i=integer,d=double , si tiene mas es con array ->execute(array('hola','k'));
									$sentencia->bind_param("s", $value);                          
					/* ejecutar la consulta */
					$sentencia->execute();
					/* almacenar el resultado */                                  
					$sentencia->store_result();
					//$sentencia->num_rows devuelve el numero de registros que ha devuelto la sentencia
				//asignamos a una variable el numero de registros devueltos
				$num = $sentencia->num_rows;
				/* cerrar sentencia */
				$sentencia->close();
				/* cerrar la conexión */
					$con->desconectar();

				if( $num==0){return false;}
				else if( $num==1 ){return true;}  
					}
				  } catch( Exception $e ){
						return false;
				  
				 }
		 }
                 
                 /*
                  * GetSubcategorias()
                  * Devuelve las categorias totales
                  */
                 public static function getSubCategorias(){
                    try{
                            $connection = new Connection();//Creamos una variable para conectarnos a la BBDD
                            $connection->conectar();//Nos conectamos a la BBDD
                            //Array a preparar
                            $subcategorias=array();
                            $consulta = 'SELECT * FROM subCategorias'; 
                            //obtenemos query
		            if ($sentencia = $connection->getConexion()->query($consulta)) {
                                /* obtener array asociativo */
                                while ($row = $sentencia->fetch_assoc()) {
                                    $subcategorias[]=new Subcategoria($row['id_subCategoria'],$row['id_categoria'],$row['nombre_subCategoria'],$row['description'],$row['url_img']);
                                    }
                                /* cerrar sentencia */
				$sentencia->close();
				/* cerrar la conexión */
		                $connection->desconectar();
                                
                                //echo count($subcategorias);
                                return $categorias;
                            }
                               

                      } catch( Exception $e ){
                            return null;
                     }
                }
                
                
                /*
                 * getSubCategoriasById
                 * Devuelve las categorias que coincidan con la id de la categoria
                 * param ID categoria
                 */
                 public static function getSubCategoriasById( $id ){
                    try{
                            $connection = new Connection();//Creamos una variable para conectarnos a la BBDD
                            $connection->conectar();//Nos conectamos a la BBDD
                            //Array a preparar
                            $subcategorias=array();
                            $consulta = "SELECT * FROM subCategorias WHERE id_categoria='".$id."'"; 
                            //obtenemos query, no hace falta prepare stetament por que es una consulta que pasamos nosotros
		            if ($sentencia = $connection->getConexion()->query($consulta)) {
                                /* obtener array asociativo */
                                while ($row = $sentencia->fetch_assoc()) {
                                    $subcategorias[]=new Subcategoria($row['id_subCategoria'],$row['id_categoria'],$row['nombre_subCategoria'],$row['description'],$row['url_img']);
                                    }
                                /* cerrar sentencia */
				$sentencia->close();
				/* cerrar la conexión */
		                $connection->desconectar();
                                
                                //echo count($subcategorias);
                                return $subcategorias;
                            }
                               

                      } catch( Exception $e ){
                            return null;
                     }
                }
                
                /* getSubCagoryId
                 * Devuelve la id pasandole la url amigable
                 * @param: string url_amigable
                 * @return: id
                 */
                public static function getSubCategoryId( $url_amigable ) {
                    try{
				$connection = new Connection();//Creamos una variable para conectarnos a la BBDD
				$connection->conectar();//Nos conectamos a la BBDD
				
				//prepare statament
				$consulta = 'SELECT id_subCategoria FROM subCategorias WHERE url_amigable =?'; 
				if ($sentencia = $connection->getConexion()->prepare($consulta)) {
					//asignamos la variable $category al ? ,  s=string, i=integer,d=double 
					$sentencia->bind_param( "s", $url_amigable );
					/* ejecutar la consulta */
					$sentencia->execute();
					/* vincular variables a la sentencia preparada */
                                        $sentencia->bind_result($resultado);
                                        /* obtener valores */
                                        while ($sentencia->fetch()) {
                                            $id = $resultado;
                                        }
					/* cerrar sentencia */
					$sentencia->close();
					/* cerrar la conexión */
					$connection->desconectar();

					return $id;
				}
			} catch( Exception $e ){
				return false;
			}
				
                    
                }
                
                /*  show
                 * Funcion que genera un objeto subcategoria a html
                 * En este caso no se utilizara para separar la vista del modelo
                 */
                public function show(){
                    echo '<div class="subcategoria">';
                    echo '<div class="img">';
                    echo '<img src="'. RAIZ . TEMPLATE .'img/' . $this->url_foto . '" width=100 heigth=100>';
                    echo '</div>';
                    echo '<div class="mame">' . $this->name . '</div>';
                    echo '</div>'; 
                }
	}
?>
